Spring Web MVC
https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#spring-web
同義 : Spring MVC
Servlet API の上に構築されている web フレームワーク
Spring Framework に初期から含まれている
Spring Framework 5.0 からは、Spring Web MVC と並行で Spring WebFlux というものも導入された
from Spring 徹底入門 Spring Framework による Java アプリケーション開発
MVC パターンを採用した web アプリケーションフレームワーク
フロントコントローラパターン
Controller のハンドラメソッド
引数の型としてデフォルトで使えるもの
Model : view に連携するデータを保持する
RedirectAttributes : リダイレクト先と連携するデータを格納する
フォームクラスなどの JavaBeans
BindingResult : フォームクラスの入力チェックの結果
HttpEntity<?> : リクエストヘッダーとリクエストボディ
UriComponentsBuilder : コンテキストパスをベース URL として保持した状態
などなど
返り値
String : view 名
ModelAndView : view とそれに渡すデータ
ResponseEntity<?>
など
バインディング処理のカスタマイズには WebDataBinder を利用
エラーハンドリング
エラー発生個所とそれぞれの対処法
Servlet Filter でのエラー : サーブレットコンテナのエラーページ機能 (web.xml の error-page 要素) で対応
DispatcherServlet でのエラー : Spring Web MVC が提供するエラーハンドリングの仕組み HandlerExceptionResolver で対応 (See : Spring Web MVC の HandlerExceptionResolver)
アプリケーションでのエラー : Spring Web MVC が提供するエラーハンドリングの仕組みや、アプリケーション内での try-catch
View (JSP など) でのエラー : サーブレットコンテナのエラーページ機能で対応
Spring Web MVC での REST API の開発
Spring Web MVC における HTTP セッションの利用
Spring Web MVC でのファイルアップロード
Spring Web MVC での非同期リクエストの実装
Spring Web MVC のリクエストごとの共通処理を実装
Spring Web MVC での静的リソースの扱い
Spring Web MVC での国際化